<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sample E-commerce Page for JsonCssExtractionStrategy Testing</title>
    <style>
        body { font-family: Arial, sans-serif; line-height: 1.6; padding: 20px; }
        .category { border: 1px solid #ddd; margin-bottom: 20px; padding: 10px; }
        .product { border: 1px solid #eee; margin: 10px 0; padding: 10px; }
        .product-details, .product-reviews, .related-products { margin-top: 10px; }
        .review { background-color: #f9f9f9; margin: 5px 0; padding: 5px; }
    </style>
</head>
<body>
    <h1>Sample E-commerce Product Catalog</h1>
    <div id="catalog"></div>

    <script>
        const categories = ['Electronics', 'Home & Kitchen', 'Books'];
        const products = [
            {
                name: 'Smartphone X',
                price: '$999',
                brand: 'TechCorp',
                model: 'X-2000',
                features: ['5G capable', '6.5" OLED screen', '128GB storage'],
                reviews: [
                    { reviewer: 'John D.', rating: '4.5', text: 'Great phone, love the camera!' },
                    { reviewer: 'Jane S.', rating: '5', text: 'Best smartphone I\'ve ever owned.' }
                ],
                related: [
                    { name: 'Phone Case', price: '$29.99' },
                    { name: 'Screen Protector', price: '$9.99' }
                ]
            },
            {
                name: 'Laptop Pro',
                price: '$1499',
                brand: 'TechMaster',
                model: 'LT-3000',
                features: ['Intel i7 processor', '16GB RAM', '512GB SSD'],
                reviews: [
                    { reviewer: 'Alice W.', rating: '4', text: 'Powerful machine, but a bit heavy.' },
                    { reviewer: 'Bob M.', rating: '5', text: 'Perfect for my development work!' }
                ],
                related: [
                    { name: 'Laptop Bag', price: '$49.99' },
                    { name: 'Wireless Mouse', price: '$24.99' }
                ]
            }
        ];

        function createProductHTML(product) {
            return `
                <div class="product">
                    <h3 class="product-name">${product.name}</h3>
                    <p class="product-price">${product.price}</p>
                    <div class="product-details">
                        <span class="brand">${product.brand}</span>
                        <span class="model">${product.model}</span>
                    </div>
                    <ul class="product-features">
                        ${product.features.map(feature => `<li>${feature}</li>`).join('')}
                    </ul>
                    <div class="product-reviews">
                        ${product.reviews.map(review => `
                            <div class="review">
                                <span class="reviewer">${review.reviewer}</span>
                                <span class="rating">${review.rating}</span>
                                <p class="review-text">${review.text}</p>
                            </div>
                        `).join('')}
                    </div>
                    <ul class="related-products">
                        ${product.related.map(item => `
                            <li>
                                <span class="related-name">${item.name}</span>
                                <span class="related-price">${item.price}</span>
                            </li>
                        `).join('')}
                    </ul>
                </div>
            `;
        }

        function createCategoryHTML(category, products) {
            return `
                <div class="category">
                    <h2 class="category-name">${category}</h2>
                    ${products.map(createProductHTML).join('')}
                </div>
            `;
        }

        function populateCatalog() {
            const catalog = document.getElementById('catalog');
            categories.forEach(category => {
                catalog.innerHTML += createCategoryHTML(category, products);
            });
        }

        populateCatalog();
    </script>
</body>
</html>